package com.woniu.dto;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.woniu.util.CopyBeanUtil;
import lombok.Data;

import java.util.List;

@Data
public class PageDto<T> {

    //当前页码
    private Long page;

    //总页码
    private Long pages;

    //总条数
    private Long pagesSize;

    private List<T> list;

    //分页对象构建器
    public static <T> PageDto<T> bulid(Page<?> page, List<T> list){
        PageDto<T> PageDto = new PageDto<>();
        PageDto.setPage(page.getCurrent());//设置当前页码
        PageDto.setPages(page.getPages());//设置总页码
        PageDto.setPagesSize(page.getTotal());//设置总条数
        PageDto.setList(list);//设置list集合
        return PageDto;
    }

    //分页对象构建器
    public static <T> PageDto<T> bulid(Page<?> page, Class<T> type){
        PageDto<T> PageDto = new PageDto<>();
        PageDto.setPage(page.getCurrent());//设置当前页码
        PageDto.setPages(page.getPages());//设置总页码
        PageDto.setPagesSize(page.getTotal());//设置总条数
        PageDto.setList(CopyBeanUtil.copyBean(page.getRecords(),type));//将分页对象的值取出并强转为指定类型的list集合
        return PageDto;
    }
}
